﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MySql.Data.MySqlClient;
using System.Data;
using ProyectoVuelos.Logica.Excepciones;

namespace ProyectoVuelos.Acceso_a_Datos.Conexion
{

    public class ConexionMySQL
    {
        private MySqlConnection conexion;
        private String parametrosConexion="";

        public ConexionMySQL()
        {
            try
            {
                this.parametrosConexion = "Server=localhost; DataBase=vuelos; Uid= root; Pwd=1234";
                conexion = new MySqlConnection(parametrosConexion);
            }
            catch (NullReferenceException)
            {
                throw new ConexionExcepcion("ERROR: No se puede conectar a la base de datos.");
            }
        }

        public void abrirConexion()
        {
            try
            {
                if (!String.IsNullOrEmpty(this.parametrosConexion))
                {
                    conexion.Open();
                    if (conexion.State.ToString() != "Open")
                    {
                        while (conexion.State.ToString() != "Open")
                        {

                        }
                    }
                }
            }
            catch (MySqlException ex)
            {

                switch (ex.Number)
                {
                    case 0:
                       throw new ConexionExcepcion("ERROR:No se puede conectar al servidor.Contacte al administrador");
                    case 1045:
                        throw new ConexionExcepcion("ERROR:Datos de conexion incorrectas.Contrasena o cuenta incorrectas. ");
                }
              
            }
        }


        public void cerrarConexion()
        {
            if (conexion != null)
            {
                if (conexion.State.ToString() == "Open")
                {
                    conexion.Close();
                }
            }
        }

        public MySqlConnection getConexion(){
            return conexion;

        }



    }
}